A Practical Verification Framework for Preemptive OS Kernels

نویسندگان

  • Fengwei Xu
  • Ming Fu
  • Xinyu Feng
  • Xiaoran Zhang
  • Hui Zhang
  • Zhaohui Li
چکیده

We propose a practical verification framework for preemptive OS kernels. The framework models the correctness of API implementations in OS kernels as contextual refinement of their abstract specifications. It provides a specification language for defining the high-level abstract model of OS kernels, a program logic for refinement verification of concurrent kernel code with multi-level hardware interrupts, and automated tactics for developing mechanized proofs. The whole framework is developed for a practical subset of the C language. We have successfully applied it to verify key modules of a commercial preemptive OS μC/OS-II [2], including the scheduler, interrupt handlers, message queues, and mutexes etc. We also verify the priority-inversion-freedom (PIF) in μC/OS-II. All the proofs are mechanized in Coq. To our knowledge, our work is the first to verify the functional correctness of a practical preemptive OS kernel with machine-checkable proofs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

EffiSha: A Software Framework for Enabling Efficient Preemptive Scheduling of GPU

Modern GPUs are broadly adopted in many multitasking environments, including data centers and smartphones. However, the current support for the scheduling of multiple GPU kernels (from different applications) is limited, forming a major barrier for GPU to meet many practical needs. This work for the first time demonstrates that on existing GPUs, efficient preemptive scheduling of GPU kernels is...

متن کامل

CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels

Complete formal verification of a non-trivial concurrent OS kernel is widely considered a grand challenge. We present a novel compositional approach for building certified concurrent OS kernels. Concurrency allows interleaved execution of kernel/user modules across different layers of abstraction. Each such layer can have a different set of observable events. We insist on formally specifying th...

متن کامل

The Clustered Multikernel: An Approach to Formal Verification of Multiprocessor OS Kernels

Operating-system kernels are critical software components in computer systems. Building secure, safe and reliable computer systems is facilitated by having strong kernel correctness guarantees. Such guarantees can be obtained by formally verifying a kernel down to the implementation level. Kernel verification has attracted much research interest. For example, the L4.verified project has proved ...

متن کامل

My Current Work on CertiKOS

My research goal is to make critical software systems truly reliable and secure through formal verification. As the backbone of modern software systems, operating system (OS) kernels have great impacts on the reliability and security of today’s computing hosts. OS kernels, however, are complicated, highly concurrent, and prone to bugs. For the past several years, my research has focused on inve...

متن کامل

Modular Verification of Concurrent Thread Management

Thread management is an essential functionality in OS kernels. However, verification of thread management remains a challenge, due to two conflicting requirements: on the one hand, a thread manager—operating below the thread abstraction layer–should hide its implementation details and be verified independently from the threads being managed; on the other hand, the thread management code in many...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016